package javaClassExercise.designPatterns.abstractFactory;

/**
 * Created by lomo on 2017/3/25.
 *
 * 提供一个工厂类共有的接口, 各个具体功能模块对应的工厂类实现该接口的方法即可
 * 调用时，只需要调用对象功能模块的工厂类即可获取对应功能类的实例
 * 拓展时，只需要增加一个功能模块类(实现功能公有的接口)，和另一个 工厂类(实现工厂类公有的接口) 即可。
 *
 * 为何声明返回类型为Sender类型？
 * 该接口声明一个返回类型为Sender类型的produce方法，实现该接口的类时必须实现对应的produce方法，
 * 这样一来，实现的工厂类 类中实现该produce方法即可获得对应功能模块的实例
 * 调用时只要new该工厂类实例，然后调用对应的方法即可获得对应的功能类实例;
 */
public interface Provider {
    public Sender produce();
}
